﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;

namespace shop.Areas.Main.Controllers
{
    public class accountController : Controller
    {
        private LongHAEntities db = new LongHAEntities();

        //
        // GET: /Main/account/

        public ActionResult Index()
        {
            return View(db.Taikhoans.ToList());
        }

        //
        // GET: /Main/account/Details/5

        public ActionResult Details(string id = null)
        {
            Taikhoan taikhoan = db.Taikhoans.Find(id);
            if (taikhoan == null)
            {
                return HttpNotFound();
            }
            return View(taikhoan);
        }

        //
        // GET: /Main/account/Create

        public ActionResult Create()
        {
            return View();
        }

        //
        // POST: /Main/account/Create

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(Taikhoan taikhoan)
        {
            if (ModelState.IsValid)
            {
                taikhoan.diachi = null;
                
                db.Taikhoans.Add(taikhoan);
                db.SaveChanges();

                FormsAuthentication.SetAuthCookie(taikhoan.tentk, true);
                return RedirectToAction("Index");
            }

            return View(taikhoan);
        }

        //
        // GET: /Main/account/Edit/5

        public ActionResult Edit(string id = null)
        {
            Taikhoan taikhoan = db.Taikhoans.Find(id);
            if (taikhoan == null)
            {
                return HttpNotFound();
            }
            return View(taikhoan);
        }

        //
        // POST: /Main/account/Edit/5

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit(Taikhoan taikhoan)
        {
            if (ModelState.IsValid)
            {
                db.Entry(taikhoan).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(taikhoan);
        }

        //
        // GET: /Main/account/Delete/5

        public ActionResult Delete(string id = null)
        {
            Taikhoan taikhoan = db.Taikhoans.Find(id);
            if (taikhoan == null)
            {
                return HttpNotFound();
            }
            return View(taikhoan);
        }

        //
        // POST: /Main/account/Delete/5

        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(string id)
        {
            Taikhoan taikhoan = db.Taikhoans.Find(id);
            db.Taikhoans.Remove(taikhoan);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

         public ActionResult Login()
        {
            return View("login");
        }
        [HttpPost]
        public ActionResult  login (Taikhoan acc,string returnUrl )
        {
              if(ModelState.IsValid)
              {

                  var tk = db.Taikhoans.Where(s => s.tentk.Equals(acc.tentk) && s.matkhau.Equals(acc.matkhau));
                  if(tk.Count()!=0)
                  {
                      FormsAuthentication.SetAuthCookie(acc.tentk, true);
                      //FormsAuthentication.Timeout.Hours = 5;
                      //FormsAuthentication.SetAuthCookie(acc.TaiKhoan, false);
                      if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
                          && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))//doan code nay nham muc dich khi ma ban vao mot trang nao do mo khong dung quyen han no se bat ban dang nhap.neu thanh cong no se tro lai trang truoc do ma ban muon vao.
                      {
                          return Redirect(returnUrl); //tro lai trang truoc do ma ban muon vao
                      }
                      else
                      {
                          return RedirectToAction("index", "home");
                      }
                  }
                  else
                  {
                      ModelState.AddModelError("", "Tài khoản hoặc mật khẩu không đúng");
                  }
              }
           

              return View("login", acc);
        }
        public ActionResult Logout()
        {
            FormsAuthentication.SignOut();
            return RedirectToAction("index","home");
        }

        [AllowAnonymous]
        public string Checktaikhoan(string input)
        {
            var data = db.Taikhoans.Where(s => s.tentk == input).ToList();
            if(data.Count > 0 )
            {
                return "1";       // đã sử dụng
            }
            if(data.Count == 0 )
            {
                return "0";              // không có người sử dụng
            }
            return "";
        }
        [AllowAnonymous]
        public string checkmail(string input)
        {
            var data = db.Taikhoans.Where(s => s.email == input).ToList();
            if(data.Count >0 )
            {
                return "1"; // email đã được sử dụng
            }
            if(data.Count ==0 )
            {
                return "0"; // email chưa được sử dụng
            }
            return "";
        }
        [AllowAnonymous]
        public string checkdienthoai(string input)
        {

            var data = db.Taikhoans.Where(s => s.phone == input).ToList();
            if(data.Count > 0 )
            {
                return "1"; // số điện thoại đã sử dụng
            }
            if(data.Count ==0 )
            {
                return "0"; // có thế sử dụng tài só điện thoại này
            }
            return "";
        }
        public ActionResult reg()
        {
            return View();
        }
        [HttpPost]
        public ActionResult reg(Taikhoan tk )
        {
            if(ModelState.IsValid)
            {
                tk.diachi = null;

                db.Taikhoans.Add(tk);
                db.SaveChanges();

                FormsAuthentication.SetAuthCookie(tk.tentk, true);
                //return JavaScript("<script> $(document).ready(function () {$('#dialog').dialog('open');});</script>");
                return View();
            }
            return View();
        }
        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}
